package com.dsz.Ui;

import pojo.student;

import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import Dao.studentDao;
// 主类
public class FirstPage11 extends JFrame {
    private DefaultTableModel tableModel;

    private int currentId = 1;

    public FirstPage11() {
        StudentManager();
    }

    public void StudentManager() {
        setTitle("Student Manager");
        setSize(800, 600);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);

        // 定义表头
        String[] columnNames = {"ID", "Name", "Age", "Sex", "Class Name"};
        tableModel = new DefaultTableModel(columnNames, 0);

        // 创建表格
        JTable table = new JTable(tableModel);
        JScrollPane scrollPane = new JScrollPane(table);
        add(scrollPane, BorderLayout.CENTER);

        // 创建按钮面板
        JPanel buttonPanel = new JPanel();
        add(buttonPanel, BorderLayout.SOUTH);

        // 添加按钮
        JButton addButton = new JButton("Add");
        JButton deleteButton = new JButton("Delete");
        JButton updateButton = new JButton("Update");
        JButton searchButton = new JButton("Search");

        buttonPanel.add(addButton);
        buttonPanel.add(deleteButton);
        buttonPanel.add(updateButton);
        buttonPanel.add(searchButton);

        // 按钮事件监听器
        addButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                // 添加新学生
                addStudent();
            }
        });

        deleteButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                // 删除学生
                deleteStudent();
            }
        });

        updateButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                // 更新学生
                updateStudent();
            }
        });

        searchButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                searchStudent();
            }
        });

        // 插入初始数据
        insertInitialData();
    }

    // 插入初始数据
    private void insertInitialData() {
        // 数据行1
        Object[] row1 = {1, "张三", 20, "男", "计算机科学"};
        tableModel.addRow(row1);

        // 数据行2
        Object[] row2 = {2, "李四", 22, "女", "软件工程"};
        tableModel.addRow(row2);
    }

    // 添加学生
    private void addStudent() {
        // 这里可以弹出一个对话框让用户输入学生信息，但为了简化，直接添加一个示例学生

        student a = new student(11 , "字节", 22, "未知", "未知");//student
        studentDao studentdao = new studentDao();

        studentdao.add(a);
//        先把这个数据行放到数据可插入，在返回给数据模型
        //这有两种逻辑。1先给数据库。然后调用数据库中的填充文本
//        2.先给文本框，再插入到数据库中
//--------------------------这里单纯是练习语法知识-------------
        Object[] newRow = new Object[5];
        newRow[0] = a.getId();
        newRow[1] = a.getName();
        newRow[2] = a.getAge();
        newRow[3] = a.getSex();
        newRow[4] = a.getClassName();

        tableModel.addRow(newRow);



    }

    // 删除学生
    private void deleteStudent() {
        int selectedRow = tableModel.getRowCount() - 1; // 删除最后一行作为示例
        if (selectedRow >= 0) {
            tableModel.removeRow(selectedRow);
        } else {
            JOptionPane.showMessageDialog(this, "没有可删除的学生。");
        }
    }

    // 更新学生
    private void updateStudent() {
        int selectedRow = tableModel.getRowCount() - 1; // 更新最后一行作为示例
        if (selectedRow >= 0) {
            tableModel.setValueAt("更新后的姓名", selectedRow, 1);
            tableModel.setValueAt(21, selectedRow, 2);
            tableModel.setValueAt("更新后的性别", selectedRow, 3);
            tableModel.setValueAt("更新后的班级", selectedRow, 4);
        } else {
            JOptionPane.showMessageDialog(this, "没有可更新的学生。");
        }
    }

    // 搜索学生（这里只是简单地弹出一条消息，实际应用中应该实现搜索功能）
    private void searchStudent() {
        // 这里应该弹出一个对话框让用户输入搜索条件，但为了简化，直接显示一条消息
        JOptionPane.showMessageDialog(this, "Search functionality not implemented.");
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                new FirstPage11().setVisible(true);
            }
        });
    }
}
